#include <stdio.h>
#include <stdlib.h>
#include "types.h"
#include "cgl.h"

void affLigneCrenConsultation();
void affLignesDisponibilitesConsultation(int deb,int fin);

int numRDV(){
  int n;
  // Etablissement de la connexion
  if (cgl_init() == -1) {
    cgl_perror(stderr, "Erreur CGI ...");
    exit(1);}
  
  cgl_html_header();
  
  n = atoi(cgl_getvalue("numero"));
  return n;
}

void affichagePageTableauConsultation(int nRDV){
  //Toute la partie au dessus du tableau
  printf("\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<TITLE>Convergence - Le tableau des disponibilités du RDV n°%d - %s</TITLE>\n</head>\n</html>\n<html>\n<body>\n<hr><div align=\"center\"><strong><FONT size=\"+2\" color=\"Teal\">%s</FONT></strong></div><hr>\n<table>  \n<tbody>    \n<tr>      \n<td bgcolor=\"#99CCCC\" width=\"200\"><div align=\"right\">Nom du responsable : </div></td>      \n<td>%s</td>    \n</tr>    \n<tr>      \n<td bgcolor=\"#99CCCC\"><div align=\"right\">Mail du responsable : </div></td>      \n<td>\n<a href=\"mailto:%s\">%s</a></td>    \n</tr>    \n<tr>	\n<td bgcolor=\"#99CCCC\"><div align=\"right\">Description : </div></td>      \n<td><FONT size=\"-1\">%s</FONT></td>    \n</tr>  \n</tbody>\n</table>    \n<br>",infos.num,infos.titre,infos.titre,infos.nomRespo,infos.mailRespo,infos.mailRespo,infos.description);
  
  // Le tableau des diponibilités

  printf("\n<table>");
  affLigneCrenConsultation();
  affLignesDisponibilitesConsultation(0,NPART-1);
  printf("\n</table>");

  //Le formulaire pour modification des disponibilités d'un participant
  printf("<br>\n<FORM method=\"post\" action=\"../cgi-bin/modificationRDV.cgi\">Sélectionnez ici le numéro du participant dont vous souhaitez modifier les disponibilités : <select name=\"numP\">\n<option selected=\"selected\" value=\"0\">0</option>\n<option value=\"1\">1</option>\n<option value=\"2\">2</option>\n<option value=\"3\">3</option>\n<option value=\"4\">4</option>\n<option value=\"5\">5</option>\n<option value=\"6\">6</option>\n<option value=\"7\">7</option>\n<option value=\"8\">8</option>\n<option value=\"9\">9</option>\n</select>\n<input type=hidden name=\"numero\" value=\"%d\"><input value=\"Soumettre\" type=\"submit\">\n</FORM>",nRDV);
  
  //Un bouton pour administrer les paramètres du RDV
printf("<br><br><br>\n<FORM method=\"post\" action=\"../cgi-bin/administrationRDV.cgi\">\n<FONT size=\"-1\">Vous pouvez modifier les paramètres (titre, description, créneaux, participants...) du rendez-vous en cliquant sur le bouton ci-dessous.\n<br>Attention, c'est une manipulation réservée à l'administrateur du rendez-vous car elle implique des modifications profondes sur les informations entrées par chaque participant.</FONT>\n<br><input type=hidden name=\"numero\" value=\"%d\"><input value=\"Administrer\" type=\"submit\">\n</FORM>",nRDV);
 
//La fin de la page
 printf("\n</body>\n</html>");

}

void affLigneCrenConsultation(){
  printf("<tr bgcolor=\"#99CCCC\">\n<td bgcolor=\"#99CCCC\">n°</td>");//Une case "N°"
  printf("\n<td bgcolor=\"#99CCCC\" width=\"180\">Participants</td>");//Une case "Participants"
  int i=0;
  for (i;i<NCREN;i++){ // Les cases des créneaux
    if (creneaux[i].annee!=0)
      printf("\n<td><div align=\"center\">%d/%d/%d\n <br>%d:%d</div></td>",creneaux[i].jour,creneaux[i].mois,creneaux[i].annee,creneaux[i].heure,creneaux[i].min);
  }
  printf("</tr>");
}

void affLignesDisponibilitesConsultation(int deb,int fin){ //Numéro de la première et de la dernière ligne INCLUSE à afficher
  
  int ligne=deb,c=0;
  int colonne;
  for(ligne;ligne<=fin;ligne++){
    printf("\n<tr>\n<td bgcolor=\"#99CCCC\">%d</td>",participants[ligne].num);//Une case avec le n° du participant
    printf("\n<td bgcolor=\"#99CCCC\" width=\"200\">%s</td>",participants[ligne].nom);//Une case avec le nom du participant

    for(colonne=0;colonne<NCREN;colonne++){//Les cases de disponibilités
      if (creneaux[colonne].annee!=0){

	switch (disponibilites[ligne][colonne]){
	case -1 : printf("\n<td bgcolor=\"#ff4020\"><div align=\"center\">%s</div></td>","Indisponible"); break;
	case 1 : printf("\n<td bgcolor=\"#ffa020\"><div align=\"center\">%s</div></td>","Peut se libérer"); break;
	case 2 : printf("\n<td bgcolor=\"#60c040\"><div align=\"center\">%s</div></td>","Disponible"); break;
	default : printf("\n<td bgcolor=\"#CECECE\"><div align=\"center\">%s</div></td>","Non renseigné");}
      }
    }
    printf("\n</tr>");
  }
}
